//
//  SubcategoriaTienda.m
//  ProyectoMoviTiendas
//
//  Created by Daniel Paez on 3/6/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import "SubcategoriaTienda.h"
#import "Producto.h"
#import "Item.h"

@implementation SubcategoriaTienda

@synthesize nombre, items, nombreTienda;

- (id)initConItems: (NSMutableArray *) items
{
    self = [self init];
    if (self) {
        self.items = items;
    }
    return self;
}

- (id)init
{
    self = [super init];
    if (self) {
        items = [[NSMutableArray alloc] init];
    }
    return self;
}
- (void) encodeWithCoder:(NSCoder*) coder
{
    //fecha,direccion,esDomicilio,precioTotal,items,recordatorio,pedirYa, tienda
    
    
    [coder encodeObject:[self nombre] forKey:@"nombre"];
    [coder encodeObject:[self items] forKey:@"items"];
    
    //    [coder encodeFloat:[self strokeWidth] forKey:@"stroke_width"];
}


- (id) initWithCoder:(NSCoder*) coder
{
    self = [super init];
    self.nombre = [coder decodeObjectForKey:@"nombre"];
    self.items = [coder decodeObjectForKey:@"items"];
    
    //[self setStrokeWidth:[coder decodeFloatForKey:@"stroke_width"]];
    
    return self;
}

-(SubcategoriaTienda *) darCopiaDeSubcategoria
{
    SubcategoriaTienda * temp = [[SubcategoriaTienda alloc] init];
    temp.items = [[NSMutableArray alloc] initWithArray:items];
    temp.nombre = nombre;
    //temp.nombre = [NSString stringWithFormat:@"%@ copia",nombre];
    return temp;
    
}

-(NSMutableArray *) darProductosConSoloItemsPropios
{
    NSMutableArray * productos = [[NSMutableArray alloc] init];
    Producto * prodNuevo;

    BOOL encontro = NO;
    for (Item * item in items) 
    {
        
        Producto * prodItem = item.producto;
        for (int i = 0; i < productos.count && !encontro; i++)
        {
            prodNuevo = [productos objectAtIndex:i];
            if([prodNuevo.nombre isEqualToString:prodItem.nombre])
            {
                encontro = YES;
                [prodNuevo.items addObject:item];
            }
        }
        if(!encontro)
        {
            prodNuevo = [[Producto alloc] init];
            prodNuevo.nombre = prodItem.nombre;
            prodNuevo.imagen = prodItem.imagen;
            [prodNuevo.items addObject:item]; 
            [productos addObject:prodNuevo];
        }
        
        encontro = NO;

    }
    
    return productos; 
}

-(void)incluirItemsPropiosEnProductos:(NSMutableArray *)productos
{
    BOOL encontro = NO;
    
    NSMutableArray * actuales =  [[NSMutableArray alloc] initWithArray:items];
    for (Producto * prod in productos)
    {
        for (Item * item in actuales)
        {
            if([item.producto.nombre isEqualToString:prod.nombre])
            {
                encontro = NO;
                for (int i = 0; i < prod.items.count && !encontro; i++)
                {
                    Item * itemProd = [prod.items objectAtIndex:i];
                    
                    if([itemProd.tienda.nombre isEqualToString:item.tienda.nombre])
                    {
                        encontro = YES;
                    }
                }
                
                
                if(!encontro)
                {
                    [prod.items addObject:item];
                    [actuales removeObject:item];
                }
            }
        }
    }
    
    for (Item * item in actuales) 
    {
        Producto * prod = [[Producto alloc] init];
        prod.nombre = item.producto.nombre;
        prod.imagen = item.producto.imagen;
        [prod.items addObject:item];
        [productos addObject:prod];
    }
    
}


@end
